//
//  MBTableViewModel.h
//  MemberBusiness-ios
//
//  Created by cherry pu on 2018/4/18.
//  Copyright © 2018年 zhangXin. All rights reserved.
//

#import "MBBaseViewModel.h"
#import "MBBaseTableCellViewModel.h"

@interface MBBaseTableViewModel : MBBaseViewModel
/**
 数据源
 */
@property (nonatomic,strong,readonly) NSMutableArray *dataArray;

/**
 外部通过监听该字段来判断是否需要刷新tableView
 */
@property (nonatomic,assign) BOOL isNeedRefresh;

#pragma mark - tableView的代理通过ViewModel来实现

/**
 UITableView的属性 plain or group
 */
- (UITableViewStyle)tableViewStyle;

/**
 tableViewCell的点击状态
 */
- (UITableViewCellSelectionStyle)tableViewCellSelectionStyle;

/**
 多少section
 */
- (NSInteger)numberOfSections;

/**
 对应的section返回多少Rows
 */
- (NSInteger)numberOfRowInSection:(NSInteger)section;

/**
 对应section的header高度
 */
- (CGFloat)heightForHeaderInSection:(NSInteger)section;

/**
 返回对应section的头部View
 */
- (UIView *)viewForHeaderInSection:(NSInteger)section;

/**
 对应section的header高度
 */
- (CGFloat)heightForFooterInSection:(NSInteger)section;

/**
 返回对应section的头部View
 */
- (UIView *)viewForFooterInSection:(NSInteger)section;

/**
 返回对应的cellViewModel给对应的cell初始化
 */
- (MBBaseTableCellViewModel *)cellViewModelForRowAtIndexPath:(NSIndexPath *)indexPath;


/**
 根据请求数据创建cellViewModel
 */
- (void)factoryInitDataModelArray:(NSArray *)dataArray cellViewModelClass:(Class)cellViewModelClass;
@end
